package com.dick.weixin.business;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.dick.weixin.message.resp.Article;
import com.dick.weixin.message.resp.NewsMessage;
import com.dick.weixin.message.resp.TextMessage;
import com.dick.weixin.util.MessageUtil;

/**
 * 核心服务类
 * 
 */
public class BaseService {
	/**
	 * 处理微信发来的请求
	 * 
	 * @param request
	 * @return
	 */

	public static String processRequest(HttpServletRequest request) {
		String respMessage = null;
		try {
			System.out.println("==========in processRequest===========");
			// 默认返回的文本消息内容
			String respContent = "请求处理异常，请稍候尝试！";
			// xml请求解析.
			Map<String, String> requestMap = MessageUtil.parseXml(request);
			// 发送方帐号（open_id）
			String fromUserName = requestMap.get("FromUserName");
			// 公众帐号
			String toUserName = requestMap.get("ToUserName");
			// 消息类型
			String msgType = requestMap.get("MsgType");

			// 回复文本消息
			TextMessage textMessage = new TextMessage();
			textMessage.setToUserName(fromUserName);
			textMessage.setFromUserName(toUserName);
			textMessage.setCreateTime(new Date().getTime());
			textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
			// textMessage.setFuncFlag(0);
			// 回复图文消息
			NewsMessage newsMessage = new NewsMessage();
			newsMessage.setToUserName(fromUserName);
			newsMessage.setFromUserName(toUserName);
			newsMessage.setCreateTime(new Date().getTime());
			newsMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS);

			// 文本消息
			if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {
				respContent = "亲，我们想你了！非常感谢您关注甘肃八门武术馆的微信，让我们一起感受武术运动带来的魅力吧/:@@。我会用这个微信平台定期发送武术馆的最新动态/:@)，欢迎与我交流沟通。\nQQ:1340093169，\n电话:18189517106\n  18189517206";
				textMessage.setContent(respContent);
				respMessage = MessageUtil.textMessageToXml(textMessage);
			} else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_EVENT)) {
				// 事件类型
				String eventType = requestMap.get("Event");
				// 订阅
				if (eventType.equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)) {
					respContent = "您好/::)，非常感谢您关注甘肃八门武术馆的微信，让我们一起感受武术运动带来的魅力吧/:@@。我会用这个微信平台定期发送武术馆的最新动态/:@)，欢迎与我交流沟通。\nQQ:1340093169，\n电话:18189517106\n  18189517206";
					textMessage.setContent(respContent);
					respMessage = MessageUtil.textMessageToXml(textMessage);
				}
				// 自定义菜单点击事件
				else if (eventType.equals(MessageUtil.EVENT_TYPE_CLICK)) {
					// 事件KEY值，与创建自定义菜单时指定的KEY值对应
					String eventKey = requestMap.get("EventKey");
					// 武馆简介
					if (eventKey.equals("11")) {
						respContent = "甘肃八门武术馆创办于2011年6月，是经中国武术协会批准的段位考试点，"
								+ "是一家以培训国家二级运动员、推广武术、太极拳、散打、双节棍、"
								+ "跆拳道等项目为主的专业武术馆，是甘肃省双节棍联盟总部。八门武馆以“弘扬中华武术，强我国民体魄”为宗旨，"
								+ "以“武道相合，自强不息，文通武备，超越自我”为理念，坚持“练武不怕苦”的精神，"
								+ "为社会各界培育出了大批德、智、体兼备的人才。"
								+ "八门武馆多次组织武术交流会，举办武术比赛，去各地区义务演出，积极响应国家的“武术六进”工作，"
								+ "为武术的发展做出了突出贡献，2013年被甘肃省武术协会评为“先进单位”。\n"
								+ "武馆场地宽阔，占地面积1000平米，有室内室外训练场地，学生宿舍，管理严谨，教学完善，"
								+ "形成了独具特色的教学模式。常年开设课程有：武术、太极养生功、双节棍、散打、跆拳道、武术套路、防身术、专业特训等科目。";
						textMessage.setContent(respContent);
						respMessage = MessageUtil.textMessageToXml(textMessage);
					}
					// 教练简介
					else if (eventKey.equals("12")) {
						Article article1 = new Article();
						article1.setTitle("馆长：李得银");
						article1
								.setDescription("李得银：甘肃省双节棍联盟主席，甘肃省八门拳研究会秘书长，中国武术段位指导员、考评员；"
										+ "中国武术五段，国家职业资格认证教练。李得银先生为推动武术的发展做出了很大的贡献，在国内外武术界享有极高的声望。"
										+ "2011年正月，在兰州市东方红广场参加兰州市政府举办的元宵节演出，一百人的双节棍方阵，震撼了所有的观众，获得了政府领导的高度认同。"
										+ "2011年12月举办了兰州市首届双节棍比赛，参赛的有150余人，获得了圆满成功。2012年5月甘肃八门武术馆代表队参加甘肃省武术比赛，获得团体第二名，个人一等奖。"
										+ "2012年被世界双节棍联盟评为“棍坛奇葩”。2013年5月在金港城社区举办了八门武馆首届武术文化节，积极响应了国家的“武术六进”工作。2014年李得银先生创办了甘肃八门武术馆第二家分馆。");
						article1
								.setPicUrl("http://3.chapter.sinaapp.com/images/katong1.jpg");
						// article1
						// .setUrl("http://gsbmwsg.58.com.cn/articles/13c13/433437273368848.shtml");
						// Article article2 = new Article();
						// article2.setTitle("副馆长兼武术总教练兼太极拳教练：张宏");
						// article2
						// .setDescription("武当玄武派第十五代理字辈传人，研究生学历。中国武术协会会员，中国武术五段，国家职业资格认证教练，国家武术二级裁判，"
						// +
						// "甘肃省“优秀运动员”甘肃省武术大赛八卦掌一等奖。多次受邀演出，颇受好评。其学生在多次国内外比赛中获得荣誉");
						// article2
						// .setPicUrl("http://3.chapter.sinaapp.com/images/katong2.jpg");
						// article2
						// .setUrl("http://www.gsbmwsg.icoc.cc/col.jsp?id=104");
						// Article article3 = new Article();
						// article3.setTitle("武术教练：王强");
						// article3
						// .setDescription("王强，中国武术协会会员，甘肃省双节棍联盟秘书长，中国武术四段，国家职业资格认证教练。曾为高校武术协会会长，多年的教学经历，授课经验丰富。");
						// article3
						// .setPicUrl("http://3.chapter.sinaapp.com/images/katong3.jpg");
						// article3.setUrl("http://gsbmwsg.58.com.cn");
						// Article article4 = new Article();
						// article4.setTitle("双节棍教练：苏阳春、杨俊杰、张新林、刘霖");
						// article4
						// .setDescription("以上四位教练自幼习武，习练双节棍四年以上，均获得了中国双节棍四段认证。");
						// article4
						// .setPicUrl("http://3.chapter.sinaapp.com/images/katong4.jpg");
						// article4.setUrl("http://gsbmwsg.58.com.cn");
						// Article article5 = new Article();
						// article5.setTitle("散打教练：周锋");
						// article5
						// .setDescription("周锋，自幼习武，十二岁入山东武术培训基地正式接受专业的武术散打培训，深造六年之久，是散打界的青年实力派选手。");
						// article5
						// .setPicUrl("http://3.chapter.sinaapp.com/images/katong5.jpg");
						// article5.setUrl("http://gsbmwsg.58.com.cn");
						List<Article> articleList = new ArrayList<Article>();
						articleList.add(article1);
						// articleList.add(article2);
						// articleList.add(article3);
						// articleList.add(article4);
						// articleList.add(article5);
						newsMessage.setArticleCount(articleList.size());
						newsMessage.setArticles(articleList);
						respMessage = MessageUtil.newsMessageToXml(newsMessage);

					}
					// 精彩瞬间
					else if (eventKey.equals("13")) {
						Article article = new Article();
						article.setTitle("甘肃八门武术馆首届武术文化节");
						article
								.setDescription("2013年5月甘肃八门武术馆举办了首届武术文化节，带着对中国传统文化的向往和对武术精神的探索追求，武林豪杰汇聚一堂。参加表演的有兰州各所高校武术协会代表队，有300余人。");
						article
								.setPicUrl("http://3.chapter.sinaapp.com/images/7.jpg");
						article
								.setUrl("http://gsbmwsg.58.com.cn/photos/11c9/745917255046768.shtml");

						Article article2 = new Article();
						article2.setTitle("安宁红歌会受邀表演");
						article2
								.setDescription("2011年受安宁区政府邀请为贫困小学义务表演，受到了当地政府以及人民群众的好评。");
						article2
								.setPicUrl("http://3.chapter.sinaapp.com/images/4.jpg");
						article2
								.setUrl("http://gsbmwsg.58.com.cn/photos/11c9/745917255046771.shtml");

						Article article3 = new Article();
						article3.setTitle("甘肃省武术比赛");
						article3
								.setDescription("在2012年甘肃省武术比赛中八门武术馆代表队获得集体八门单拳二等奖。");
						article3
								.setPicUrl("http://3.chapter.sinaapp.com/images/5.jpg");
						article3
								.setUrl("http://gsbmwsg.58.com.cn/photos/11c9/745917255046765.shtml");

						Article article4 = new Article();
						article4.setTitle("双截棍团体比赛");
						article4
								.setDescription("在2012年甘肃省武术比赛中八门武术馆代表队获得集体双节棍一等奖，双节棍总教练获得个人一等奖");
						article4
								.setPicUrl("http://3.chapter.sinaapp.com/images/6.jpg");
						article4
								.setUrl("http://gsbmwsg.58.com.cn/photos/11c9/745917255046777.shtml");
						List<Article> articleList = new ArrayList<Article>();
						articleList.add(article);
						articleList.add(article2);
						articleList.add(article3);
						articleList.add(article4);
						newsMessage.setArticleCount(articleList.size());
						newsMessage.setArticles(articleList);
						respMessage = MessageUtil.newsMessageToXml(newsMessage);
					}
					// 修改
					// 甘肃八门武术馆首届武术文化节
					// else if (eventKey.equals("40")) {
					// Article article = new Article();
					// article.setTitle("甘肃八门武术馆首届武术文化节");
					// article
					// .setDescription("2013年5月甘肃八门武术馆举办了首届武术文化节，带着对中国传统文化的向往和对武术精神的探索追求，武林豪杰汇聚一堂。参加表演的有兰州各所高校武术协会代表队，有300余人。");
					// article
					// .setPicUrl("http://3.chapter.sinaapp.com/images/7.jpg");
					// article
					// .setUrl("http://gsbmwsg.58.com.cn/photos/11c9/745917255046768.shtml");
					//
					// List<Article> articleList = new ArrayList<Article>();
					// articleList.add(article);
					// newsMessage.setArticleCount(articleList.size());
					// newsMessage.setArticles(articleList);
					// respMessage = MessageUtil.newsMessageToXml(newsMessage);
					// } else if (eventKey.equals("41")) {
					// Article article = new Article();
					// article.setTitle("安宁红歌会首邀表演");
					// article
					// .setDescription("2011年受安宁区政府邀请为贫困小学义务表演，受到了当地政府以及人民群众的好评。");
					// article
					// .setPicUrl("http://3.chapter.sinaapp.com/images/4.jpg");
					// article
					// .setUrl("http://gsbmwsg.58.com.cn/photos/11c9/745917255046771.shtml");
					// List<Article> articleList = new ArrayList<Article>();
					// articleList.add(article);
					// newsMessage.setArticleCount(articleList.size());
					// newsMessage.setArticles(articleList);
					// respMessage = MessageUtil.newsMessageToXml(newsMessage);
					// } else if (eventKey.equals("42")) {
					// Article article = new Article();
					// article.setTitle("甘肃武术比赛");
					// article
					// .setDescription("在2012年甘肃省武术比赛中八门武术馆代表队获得集体八门单拳二等奖。");
					// article
					// .setPicUrl("http://3.chapter.sinaapp.com/images/5.jpg");
					// article
					// .setUrl("http://gsbmwsg.58.com.cn/photos/11c9/745917255046765.shtml");
					// List<Article> articleList = new ArrayList<Article>();
					// articleList.add(article);
					// newsMessage.setArticleCount(articleList.size());
					// newsMessage.setArticles(articleList);
					// respMessage = MessageUtil.newsMessageToXml(newsMessage);
					// } else if (eventKey.equals("43")) {
					// Article article = new Article();
					// article.setTitle("双截棍团体比赛");
					// article
					// .setDescription("2011年受安宁区政府邀请为贫困小学义务表演，受到了当地政府以及人民群众的好评。");
					// article
					// .setPicUrl("http://3.chapter.sinaapp.com/images/4.jpg");
					// article
					// .setUrl("http://gsbmwsg.58.com.cn/photos/11c9/745917255046771.shtml");
					// List<Article> articleList = new ArrayList<Article>();
					// articleList.add(article);
					// newsMessage.setArticleCount(articleList.size());
					// newsMessage.setArticles(articleList);
					// respMessage = MessageUtil.newsMessageToXml(newsMessage);
					// }

					// 修改 end
					// 武术
					else if (eventKey.equals("21")) {
						respContent = "段前级的学习:\n"
								+ "1.定型:先学会坐、卧、站、走、跳、跑。接人待物的礼仪；\n"
								+ "2.踢腿：如正踢、侧踢、十字踢、外摆、里合、前后踢；蹬脚:正蹬、侧蹬、前后蹬；\n"
								+ "3.腰、颈、足、手部练习,前后左右弯腰,手臂,脚腕练习；\n"
								+ "4:手、眼、身、法、势、步的配合练习：如马步冲拳、弓步冲拳、歇步冲拳、纽丝盘坐、扑步穿掌、虚步亮掌、独立平衡；\n"
								+ "5.劈单叉、双叉、朝天蹬、前滚翻、后滚翻；\n"
								+ "6.套路从“五步拳开始”，初级拳。\n" + "7.国家规定初级套路\n"
								+ "8.国家武术一级考试\n\n" + "二段到三段的学习:"
								+ "\n1.鲤鱼打鲭，旋子。" + "\n2.前空翻，后空翻。\n"
								+ "3.自选刀，剑，表演套路。\n" + "4.国家武术三段考试\n\n"
								+ "三段到四段的学习:\n" + "1．巩固提高基本功法\n"
								+ "2．翻子拳四段、长拳四段、双刀，双鞭，虎头钩等双手兵器的练习。\n"
								+ "3．大刀，禅丈，大连枷等大兵器的练习。\n" + "4．对抗性练习。注重攻防意识。\n"
								+ "5．九节鞭，三节棍，流星锤等软兵器的练习。\n" + "6．准备国家武术四段考试。 ";
						textMessage.setContent(respContent);
						respMessage = MessageUtil.textMessageToXml(textMessage);
					}
					// 太极拳
					else if (eventKey.equals("22")) {
						respContent = "本馆采取分班教学方式。常年招收太极拳学员。针对不同年龄，不同身体素质的个体，因材施教。教练员自幼习练内家武艺，"
								+ "多年从事内家武术和太极拳教学，教学经验丰富。\n"
								+ "教学内容：陈氏太极拳38式，竞赛套路56式，老架一路83式，老架二路炮捶71式，陈氏太极拳新架一、二路，陈氏太极推手，"
								+ "陈氏太极剑49式，技击内容。武当太极拳剑套路和各种养生功法。";
						textMessage.setContent(respContent);
						respMessage = MessageUtil.textMessageToXml(textMessage);
					}
					// 散打
					else if (eventKey.equals("23")) {
						respContent = "散打（也称为散手或自由搏击）20世纪60年代起开始风靡世界武坛，是一种以实战求胜为主旨的自由式全接触徒手攻防搏击术，"
								+ "兼容并蓄了中国武术、韩国跆拳道、泰拳及日本空手道、柔道、西方拳击、摔跤等武道的精粹，是现代武道文化和技艺的最佳结合，在当今世界武坛独树一帜。"
								+ "经过数十年的擂台锤炼，自由搏击已经成为当今国际武坛最强的实战武道。它讲究攻防兼备、立体作战、招法凌厉、攻击勇猛、简捷直接，"
								+ "强调个性风格，进攻时要求发挥最大威力，防守时要求严密，其决胜的条件是技艺、体能、战术和精神力量的完美统一。";
						textMessage.setContent(respContent);
						respMessage = MessageUtil.textMessageToXml(textMessage);
					}
					// 双截棍
					else if (eventKey.equals("24")) {
						respContent = "双节棍又名二节棍、双截棍、两节棍、二龙棍是中国古代流传下来的一件奇特的兵器。双节棍运动又称棍道，"
								+ "是集健身、防身、表演、竞技于一体的新兴时尚运动，它以中国传统武术套路为基础，加入身形、步法、走位，融汇刀枪剑棍九节鞭等动作，"
								+ "也可加入现代时尚的音乐和舞蹈元素。既有徒手搏击与器械搏击的完美结合，又有绚丽夺目的舞台表演效果";
						textMessage.setContent(respContent);
						respMessage = MessageUtil.textMessageToXml(textMessage);
					}
					// 跆拳道
					else if (eventKey.equals("25")) {
						respContent = "跆拳道，是现代奥运会正式比赛项目之一，是一种主要使用手及脚进行格斗或对抗的运动。";
						textMessage.setContent(respContent);
						respMessage = MessageUtil.textMessageToXml(textMessage);
					}
					// 联系方式
					else if (eventKey.equals("31")) {
						respContent = "电话: \n"
								+ "张老师 :18189517106\n"
								+ "李教练 :18189517206\n"
								+ "\t13659409691\n"
								+ "QQ:\n"
								+ "张老师 :1340093169\n"
								+ "李教练 :513956823\n"
								+ "网站:\n"
								+ "http://www.gsbmwsg.icoc.cc/\n"
								+ "http://gsbmwsg.58.com.cn/ \n"
								+ "地址：\n"
								+ "<a href=\"http://map.qq.com/?l=161293239\">兰州金港城河湾堡社区四楼</a>\n"
								+ "<a href=\"http://map.qq.com/?l=157949979\">兰州七里河区西津西路马滩中街1339号（兰州三十四中向北50米）</a>\n";
						textMessage.setContent(respContent);
						respMessage = MessageUtil.textMessageToXml(textMessage);
					}
				}

			}
		} catch (Exception e) {
			System.out.println(e.toString());
			e.printStackTrace();
		}
		return respMessage;
	}

	public static void main(String[] args) {
		System.out
				.print("电话: \n"
						+ "张老师 :18189517106\n"
						+ "李教练 :18189517206\n"
						+ "\t13659409691\n\n"
						+ "QQ:\n"
						+ "张老师 :1340093169\n"
						+ "张老师 :513956823\n\n"
						+ "网站:\n"
						+ "http://www.gsbmwsg.icoc.cc\n"
						+ "http://gsbmwsg.58.com.cn\n\n"
						+ "地址：\n"
						+ "<a href=\"http://map.qq.com/?l=157951036\">兰州金港城河弯堡社区四楼</a>\n"
						+ "<a href=\"http://map.qq.com/?l=157949979\">兰州七里河区西津西路马滩中街1339号</a>\n");
	}
}
